<?php
class Acao extends Zend_Db_Table
{
    protected $_name = "acao";

    public function lista(array $request)
    {
        $dados = array();
		
	$select = $this->select()
                       ->from($this, 'COUNT(*) AS  qtd')
                       ->where('eAtivo = 1');
                 
        $result = $this->fetchRow($select);
        
	if($result->qtd > 0){
            $total_pages = ceil($result->qtd / $request['rows']);
	}else{
            $total_pages = 0;
	}
		
	if($request['page'] == 1){
            $start = 0;
	}else{
            $start = ($request['rows'] * $request['page']) - $request['rows'];
	}

        $dados['total']	= $total_pages;
	$dados['page']	= $request['page'];
	$dados['records'] = $result->qtd;
        
        $select = $this->select()
			->from($this)
			->where("eativo = ?", 1)
			->limit($request['rows'], $start);
	
        if($request['sidx']){
            $select->order($request['sidx'] . " " . $request['sord']);
	}
                
        $resultado = $this->fetchAll($select)->toArray();
              
        for ($cont = 0; $cont < count($resultado); $cont++)
	{
            $dados['rows'][$cont]['id'] =  $resultado[$cont]['idAcao'];
            $dados['rows'][$cont]['cell'] =  array( trim($resultado[$cont]['descricao'])
						  );
	}
	return $dados;
    }
    
    public function add($usuario, array $request)
    {
        $select = $this->select()
                       ->from($this)
                       ->where('eAtivo = 1 AND UPPER(descricao) = UPPER(?)', $request['descricao']);
        
        $result = $this->fetchRow($select);
        
        if(!$result){
            $dados = array(
                'descricao' => $request['descricao'],
                'eAtivo' => 1,
                'idUsuCad' => $usuario
            );
            $resultado = $this->insert($dados);
            if($resultado != 0)
                return 1;
            else
                return 0;
        }
        else
            return 2;
    }
	
    public function edit($usuario, array $request)
    {
        $select = $this->select()
                       ->from($this)
                       ->where('eAtivo = 1 AND UPPER(descricao) = UPPER(?)', $request['descricao'])
                       ->where('idAcao <> ?', $request['id']);
        
        $result = $this->fetchRow($select);
        
        if(!$result){
            $dados = array(
                'descricao' => $request['descricao'],
                'idUsuAtu' => $usuario
            );
            $where = $this->getAdapter()->quoteInto("idAcao = ?", $request['id']);
            $resultado = $this->update($dados, $where);
            if($resultado != 0)
                return 1;
            else
                return 0;
        }
        else
            return 2;
    }		
	
    public function del($usuario, array $request)
    {
        $dados = array(
            'eativo' => 0,
            'idUsuAtu' => $usuario
	);
	$where = $this->getAdapter()->quoteInto("idAcao = ?", $request['id']);
	$resultado = $this->update($dados, $where);
        if($resultado != 0)
            return 1;
        else
            return 0;
    }
}
?>